package org.jsonstruts.utils;




public class ConvertType
{
	public static Object convert(Object target,String param,String paramValue)
	{   
		String type=ReflectUtils.getClassType(target, param).getName();
		if(type==null)
		{
			return null;
		}
		if(type.equals("java.lang.String"))
		{
			return paramValue;
		}
		else if(type.equals("int")||type.equals("java.lang.Integer"))
		{
			return Integer.parseInt(paramValue);
		}
		else if(type.equals("long")||type.equals("java.lang.Long"))
		{
			return Long.parseLong(paramValue);
		}
		else if(type.equals("short")||type.equals("java.lang.Short"))
		{
			return Short.parseShort(paramValue);
		}
		else if(type.equals("byte")||type.equals("java.lang.Byte"))
		{
			return Byte.parseByte(paramValue);
		}
		else if(type.equals("float")||type.equals("java.lang.Float"))
		{
			return Float.parseFloat(paramValue);
		}
		else if(type.equals("double")||type.equals("java.lang.Double"))
		{
			return Double.parseDouble(paramValue);
		}
		else if(type.equals("char")||type.equals("java.lang.Character"))
		{
			return paramValue.charAt(0);
		}
		else if(type.equals("boolean")||type.equals("java.lang.Boolean"))
		{
			return Boolean.parseBoolean(paramValue);
		}
		else if(type.equals("java.sql.Date"))
		{
			return java.sql.Date.valueOf(paramValue);
		}
		else if(type.equals("java.sql.Timestamp"))
		{
			return java.sql.Timestamp.valueOf(paramValue);
		}
		else if(type.equals("java.sql.Clob"))
		{
			try
			{
				return new javax.sql.rowset.serial.SerialClob(paramValue  
				        .toCharArray());
			} catch (Exception e)
			{
				e.printStackTrace();
			}
		}
		return paramValue;
		
	}
}
